// var name = "Alice";
// function greet() {
//   console.log("Hello " + name);
// }
// greet(); // 在es6之前 全局变量 name 和函数 greet 都暴露在 window 上,es6及之后引入了模块化

(function() {
  var myName = "Alice";
  function greet() {
    console.log("Hello " + myName);
  }
  greet(); // 外部无法访问 name 或 greet
})();
console.log('name',myName) //外部无法访问,不会造成变量同名或者全局污染